Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

REF: algos_take_helper de-nest templating #30413

Merged
merged 7 commits into from
Dec 24, 2019

Conversation

jbrockmendel
Copy link
Member

Having two layers of templating here is really weird, this unravels one layer so this file is organized like our other tempita files. That makes future moves towards fused types and/or conditional nogil feasible.

Copy link
Member

@WillAyd WillAyd left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yea seems strange so worth refactoring; can you also confirm no new build warnings?

@@ -184,7 +107,29 @@ def take_1d_{{name}}_{{dest}}(ndarray[{{c_type_in}}, ndim=1] values,
# We cannot use the memoryview version on readonly-buffers due to
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this still valid? Seems like making these functions cpdef would solve some of the problems I guess this was trying to solve originally

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

looking the blame, i think you're right that this is outdated, but not that cpdef would help. i think using the const modifier would handle this in most of the relevant cases, but we'll still need to do some gymnastics with object[:]

@WillAyd WillAyd added the Clean label Dec 23, 2019
@jreback jreback added this to the 1.0 milestone Dec 23, 2019
Copy link
Contributor

@jreback jreback left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

so this was done IIRC to guard again the readonly array issue. if that is fixed (later cython I think)? then this is fine. any perf impact?

@jbrockmendel
Copy link
Member Author

if that is fixed (later cython I think)? then this is fine.

yah, that's the crux of what @WillAyd mentioned. do we want to move to the more modern usage in this PR or next pass?

@jreback
Copy link
Contributor

jreback commented Dec 23, 2019

if that is fixed (later cython I think)? then this is fine.

yah, that's the crux of what @WillAyd mentioned. do we want to move to the more modern usage in this PR or next pass?

ok here, any perf impact?

@jbrockmendel
Copy link
Member Author

Updated to use the modern pattern. an asv run with -b take didnt show any change, but i dont think that covers this code particularly well, so also doing a full (i.e. all-day) run now

@jbrockmendel
Copy link
Member Author

No evident perf impact.

asv continuous -E virtualenv -f 1.1 master HEAD
[...]
       before           after         ratio
     [5a7b5c95]       [8b24ed6e]
     <master>         <ref-take_helper>
+      11.3±0.7μs       16.5±0.6μs     1.46  tslibs.timestamp.TimestampProperties.time_is_quarter_end(<UTC>, 'B')
+        938±60μs       1.32±0.2ms     1.41  frame_ctor.FromRecords.time_frame_from_records_generator(1000)
+        357±20ns         495±10ns     1.39  tslibs.timestamp.TimestampProperties.time_week(tzutc(), None)
+        99.6±4μs         134±10μs     1.34  tslibs.offsets.OffestDatetimeArithmetic.time_apply(<CustomBusinessMonthEnd>)
+      10.5±0.3ms         13.8±1ms     1.32  timeseries.DatetimeAccessor.time_dt_accessor_normalize('US/Eastern')
+     14.7±0.07μs         18.9±2μs     1.29  tslibs.offsets.OffestDatetimeArithmetic.time_apply_np_dt64(<YearBegin: month=1>)
+        533±40μs         661±80μs     1.24  ctors.SeriesConstructors.time_series_constructor(<function list_of_str at 0x1127c2320>, True, 'float')
+       858±100μs       1.05±0.2ms     1.23  ctors.SeriesConstructors.time_series_constructor(<function list_of_lists_with_none at 0x11288f7a0>, False, 'float')
+        498±10ns         606±80ns     1.22  index_cached_properties.IndexCache.time_inferred_type('RangeIndex')
+        862±30ns       1.04±0.1μs     1.20  index_cached_properties.IndexCache.time_is_monotonic('Int64Index')
+        855±60μs       1.02±0.2ms     1.19  ctors.SeriesConstructors.time_series_constructor(<function list_of_tuples_with_none at 0x11288f710>, False, 'int')
+       855±100μs        988±200μs     1.16  ctors.SeriesConstructors.time_series_constructor(<function list_of_lists_with_none at 0x11288f7a0>, False, 'int')
+        472±60μs        526±100μs     1.11  ctors.SeriesConstructors.time_series_constructor(<function list_of_str at 0x1127c2320>, False, 'int')
-         384±7μs         349±10μs     0.91  groupby.GroupByMethods.time_dtype_as_group('float', 'ffill', 'direct')
-      37.6±0.5μs       34.1±0.3μs     0.91  indexing.NonNumericSeriesIndexing.time_getitem_scalar('period', 'non_monotonic')
-      1.01±0.04s          921±5ms     0.91  join_merge.MergeAsof.time_multiby('nearest', None)
-      1.33±0.1ms       1.20±0.1ms     0.90  index_cached_properties.IndexCache.time_engine('MultiIndex')
-        748±20ns         673±20ns     0.90  index_cached_properties.IndexCache.time_is_monotonic_increasing('RangeIndex')
-        124±10ms          112±4ms     0.90  index_cached_properties.IndexCache.time_is_monotonic_increasing('IntervalIndex')
-      4.43±0.4μs       3.98±0.5μs     0.90  index_cached_properties.IndexCache.time_shape('MultiIndex')
-        938±40ms         842±10ms     0.90  join_merge.MergeAsof.time_multiby('forward', None)
-        796±30ms         714±10ms     0.90  join_merge.MergeAsof.time_multiby('backward', 5)
-        330±10ms          295±4ms     0.90  io.json.ReadJSONLines.time_read_json_lines('int')
-        178±20μs        160±0.6μs     0.90  indexing.NonNumericSeriesIndexing.time_getitem_pos_slice('datetime', 'non_monotonic')
-         107±5ms         95.5±1ms     0.89  stat_ops.FrameMultiIndexOps.time_op(1, 'kurt')
-       807±100μs         721±50μs     0.89  index_cached_properties.IndexCache.time_is_monotonic_decreasing('MultiIndex')
-     2.76±0.09ms      2.46±0.05ms     0.89  timeseries.ResampleSeries.time_resample('datetime', '1D', 'ohlc')
-      2.42±0.4μs      2.15±0.05μs     0.89  index_cached_properties.IndexCache.time_shape('DatetimeIndex')
-        49.6±2μs       44.1±0.6μs     0.89  array.BooleanArray.time_from_integer_array
-        70.2±5ms         62.3±2ms     0.89  rolling.Methods.time_rolling('Series', 1000, 'float', 'median')
-        94.4±6ms       83.8±0.3ms     0.89  io.hdf.HDF.time_read_hdf('table')
-        195±10μs          173±1μs     0.89  indexing.NonNumericSeriesIndexing.time_getitem_pos_slice('period', 'unique_monotonic_inc')
-        136±20μs         120±20μs     0.88  index_cached_properties.IndexCache.time_is_monotonic('UInt64Index')
-      2.33±0.4μs       2.06±0.2μs     0.88  index_cached_properties.IndexCache.time_inferred_type('MultiIndex')
-      11.8±0.5ms       10.4±0.1ms     0.88  strings.Cat.time_cat(0, None, '-', 0.15)
-      1.06±0.02s         931±20ms     0.88  join_merge.MergeAsof.time_multiby('nearest', 5)
-        71.7±2μs         63.2±1μs     0.88  indexing.NonNumericSeriesIndexing.time_getitem_scalar('period', 'nonunique_monotonic_inc')
-        51.1±2μs       44.9±0.5μs     0.88  indexing.NonNumericSeriesIndexing.time_getitem_scalar('period', 'unique_monotonic_inc')
-        60.8±2μs         53.4±1μs     0.88  timeseries.DatetimeIndex.time_get('tz_local')
-      3.20±0.08s       2.80±0.02s     0.88  groupby.GroupByMethods.time_dtype_as_group('float', 'describe', 'transformation')
-        29.5±1ms       25.8±0.9ms     0.88  strings.Methods.time_strip
-        10.7±2ms      9.30±0.06ms     0.87  stat_ops.Rank.time_rank('Series', False)
-      2.88±0.2μs       2.52±0.2μs     0.87  index_cached_properties.IndexCache.time_is_all_dates('TimedeltaIndex')
-      12.0±0.3ms       10.5±0.2ms     0.87  io.csv.ReadCSVSkipRows.time_skipprows(10000)
-     3.02±0.06ms      2.63±0.03ms     0.87  stat_ops.SeriesMultiIndexOps.time_op(1, 'sum')
-      6.38±0.1ms       5.56±0.1ms     0.87  inference.NumericInferOps.time_modulo(<class 'numpy.uint64'>)
-        45.3±4ms       39.3±0.5ms     0.87  strings.Contains.time_contains(True)
-      1.89±0.3ms       1.64±0.2ms     0.87  index_cached_properties.IndexCache.time_is_unique('IntervalIndex')
-         414±6μs         358±10μs     0.87  offset.OffsetSeriesArithmetic.time_add_offset(<Day>)
-      1.86±0.2ms       1.60±0.2ms     0.86  index_cached_properties.IndexCache.time_is_unique('TimedeltaIndex')
-      2.50±0.3μs       2.16±0.1μs     0.86  index_cached_properties.IndexCache.time_values('IntervalIndex')
-        853±40μs        737±100μs     0.86  index_cached_properties.IndexCache.time_is_monotonic_increasing('MultiIndex')
-         183±5ms          158±6ms     0.86  indexing.NumericSeriesIndexing.time_getitem_lists(<class 'pandas.core.indexes.numeric.Int64Index'>, 'nonunique_monotonic_inc')
-      1.44±0.1ms      1.23±0.02ms     0.86  groupby.SumBools.time_groupby_sum_booleans
-       149±0.6ms          128±2ms     0.86  indexing.NumericSeriesIndexing.time_getitem_list_like(<class 'pandas.core.indexes.numeric.UInt64Index'>, 'unique_monotonic_inc')
-        324±30μs          277±8μs     0.85  stat_ops.SeriesOps.time_op('skew', 'int')
-         307±5ms         261±10ms     0.85  indexing.NumericSeriesIndexing.time_getitem_list_like(<class 'pandas.core.indexes.numeric.Float64Index'>, 'unique_monotonic_inc')
-         178±3ms          151±2ms     0.85  io.hdf.HDFStoreDataFrame.time_write_store_table_dc
-        311±30μs          263±2μs     0.85  stat_ops.SeriesOps.time_op('prod', 'float')
-        133±20ms          112±4ms     0.85  index_cached_properties.IndexCache.time_engine('IntervalIndex')
-        29.3±1ms         24.7±2ms     0.84  strings.Methods.time_lstrip
-      3.60±0.6μs       3.03±0.5μs     0.84  index_cached_properties.IndexCache.time_shape('UInt64Index')
-        29.0±3μs       24.4±0.6μs     0.84  tslibs.timestamp.TimestampOps.time_replace_tz(None)
-         180±9μs         151±20μs     0.84  index_cached_properties.IndexCache.time_is_monotonic('TimedeltaIndex')
-      1.33±0.1ms      1.11±0.01ms     0.84  timedelta.DatetimeAccessor.time_timedelta_microseconds
-      2.41±0.3μs       2.02±0.1μs     0.84  index_cached_properties.IndexCache.time_is_all_dates('IntervalIndex')
-        709±20μs          592±8μs     0.84  inference.NumericInferOps.time_divide(<class 'numpy.float64'>)
-        21.3±1ms       17.8±0.4ms     0.83  gil.ParallelGroupbyMethods.time_parallel(2, 'mean')
-      3.03±0.2μs       2.53±0.2μs     0.83  index_cached_properties.IndexCache.time_values('TimedeltaIndex')
-        133±10ms          111±2ms     0.83  index_cached_properties.IndexCache.time_is_monotonic('IntervalIndex')
-      2.06±0.2μs      1.71±0.06μs     0.83  tslibs.timestamp.TimestampConstruction.time_fromtimestamp
-        201±10μs          166±2μs     0.83  indexing.NonNumericSeriesIndexing.time_getitem_pos_slice('period', 'non_monotonic')
-      1.06±0.1ms         878±90μs     0.83  ctors.SeriesConstructors.time_series_constructor(<function list_of_tuples at 0x11288f560>, True, 'int')
-        33.6±2ms       27.7±0.4ms     0.83  inference.ToNumericDowncast.time_downcast('int-list', 'unsigned')
-        394±40ns         326±10ns     0.83  tslibs.timestamp.TimestampProperties.time_days_in_month(tzutc(), None)
-      6.19±0.1ms       5.11±0.3ms     0.83  io.csv.ReadUint64Integers.time_read_uint64_na_values
-        11.2±1ms       9.26±0.3ms     0.83  stat_ops.Rank.time_rank('Series', True)
-      3.04±0.3μs       2.51±0.5μs     0.82  index_cached_properties.IndexCache.time_values('UInt64Index')
-        175±20μs         144±20μs     0.82  index_cached_properties.IndexCache.time_is_monotonic_decreasing('TimedeltaIndex')
-        975±90μs          802±9μs     0.82  groupby.GroupByMethods.time_dtype_as_group('datetime', 'value_counts', 'direct')
-        742±70μs         610±20μs     0.82  timeseries.DatetimeIndex.time_to_date('dst')
-         147±9μs          121±3μs     0.82  timeseries.SortIndex.time_get_slice(False)
-      9.91±0.9μs       8.12±0.1μs     0.82  timeseries.DatetimeIndex.time_get('tz_aware')
-        369±40ns         301±10ns     0.82  tslibs.timestamp.TimestampProperties.time_dayofweek(None, None)
-        738±70μs          602±8μs     0.82  groupby.GroupByMethods.time_dtype_as_group('datetime', 'cummin', 'transformation')
-         112±6ms         91.5±3ms     0.81  io.json.ToJSON.time_to_json_wide('split', 'df')
-      1.83±0.1ms      1.49±0.01ms     0.81  inference.NumericInferOps.time_divide(<class 'numpy.uint64'>)
-         106±6μs         86.4±3μs     0.81  indexing.NumericSeriesIndexing.time_iloc_list_like(<class 'pandas.core.indexes.numeric.Int64Index'>, 'nonunique_monotonic_inc')
-      8.34±0.1ms       6.75±0.6ms     0.81  stat_ops.FrameOps.time_op('std', 'float', 1)
-        44.2±1ms       35.7±0.3ms     0.81  reshape.Cut.time_cut_int(1000)
-      10.3±0.3ms         8.29±1ms     0.81  timeseries.SortIndex.time_sort_index(False)
-      11.8±0.6ms       9.51±0.2ms     0.81  io.csv.ReadCSVConcatDatetimeBadDateValue.time_read_csv('')
-      13.9±0.6ms       11.2±0.6ms     0.81  indexing.NumericSeriesIndexing.time_loc_scalar(<class 'pandas.core.indexes.numeric.UInt64Index'>, 'nonunique_monotonic_inc')
-     2.43±0.07ms      1.95±0.09ms     0.80  timeseries.DatetimeAccessor.time_dt_accessor_year('UTC')
-         176±8μs         142±10μs     0.80  index_cached_properties.IndexCache.time_is_monotonic_increasing('TimedeltaIndex')
-      8.28±0.2ms       6.66±0.8ms     0.80  stat_ops.FrameOps.time_op('sem', 'int', 0)
-      4.66±0.3ms      3.74±0.03ms     0.80  groupby.Transform.time_transform_ufunc_max
-        166±10μs         133±20μs     0.80  index_cached_properties.IndexCache.time_is_monotonic_decreasing('Float64Index')
-         274±5μs          220±2μs     0.80  inference.NumericInferOps.time_subtract(<class 'numpy.uint16'>)
-     2.26±0.03ms      1.81±0.06ms     0.80  rolling.VariableWindowMethods.time_rolling('DataFrame', '1h', 'int', 'count')
-      4.20±0.1ms       3.36±0.5ms     0.80  rolling.Methods.time_rolling('Series', 1000, 'float', 'max')
-      14.7±0.2μs       11.8±0.6μs     0.80  tslibs.offsets.OnOffset.time_on_offset(<YearEnd: month=12>)
-      1.22±0.1μs         975±30ns     0.80  dtypes.Dtypes.time_pandas_dtype(<class 'pandas.core.arrays.integer.UInt8Dtype'>)
-        58.0±2ms       45.9±0.5ms     0.79  strings.Methods.time_match
-      3.17±0.1ms       2.50±0.4ms     0.79  rolling.Methods.time_rolling('Series', 1000, 'int', 'skew')
-        139±10μs          110±1μs     0.79  stat_ops.SeriesOps.time_op('prod', 'int')
-        569±80μs          450±6μs     0.79  groupby.GroupByMethods.time_dtype_as_group('datetime', 'quantile', 'direct')
-     2.65±0.06ms      2.09±0.04ms     0.79  io.csv.ReadCSVFloatPrecision.time_read_csv(';', '.', 'round_trip')
-     1.80±0.05ms       1.41±0.1ms     0.79  stat_ops.FrameOps.time_op('var', 'int', 1)
-      2.54±0.4μs       1.99±0.3μs     0.78  index_cached_properties.IndexCache.time_is_all_dates('Float64Index')
-         236±3μs          185±3μs     0.78  indexing.NumericSeriesIndexing.time_loc_scalar(<class 'pandas.core.indexes.numeric.Float64Index'>, 'nonunique_monotonic_inc')
-        28.6±4ms       22.4±0.3ms     0.78  reshape.Cut.time_cut_datetime(1000)
-     1.09±0.03ms         856±40μs     0.78  inference.NumericInferOps.time_divide(<class 'numpy.uint32'>)
-        590±90μs         461±10μs     0.78  groupby.GroupByMethods.time_dtype_as_group('float', 'prod', 'direct')
-        255±10ms          199±2ms     0.78  stat_ops.SeriesMultiIndexOps.time_op([0, 1], 'kurt')
-      3.87±0.3ms      3.02±0.07ms     0.78  rolling.VariableWindowMethods.time_rolling('Series', '1h', 'int', 'kurt')
-        11.4±1μs       8.92±0.4μs     0.78  tslibs.timestamp.TimestampOps.time_tz_convert('US/Eastern')
-      9.00±0.4μs       7.02±0.1μs     0.78  dtypes.InferDtypes.time_infer('empty')
-        593±80μs          462±6μs     0.78  groupby.GroupByMethods.time_dtype_as_field('object', 'nunique', 'transformation')
-        559±80μs          435±6μs     0.78  groupby.GroupByMethods.time_dtype_as_group('datetime', 'quantile', 'transformation')
-       991±100μs          773±9μs     0.78  reindex.ReindexMethod.time_reindex_method('backfill', <function period_range at 0x111ce97a0>)
-      1.02±0.1ms         792±20μs     0.78  groupby.GroupByMethods.time_dtype_as_group('float', 'value_counts', 'transformation')
-        305±50μs          237±3μs     0.77  groupby.GroupByMethods.time_dtype_as_group('object', 'nunique', 'direct')
-     2.00±0.03ms      1.54±0.03ms     0.77  io.csv.ReadCSVFloatPrecision.time_read_csv(',', '_', 'round_trip')
-        154±30μs         119±10μs     0.77  index_cached_properties.IndexCache.time_is_monotonic_decreasing('UInt64Index')
-      3.15±0.1ms      2.43±0.04ms     0.77  stat_ops.FrameMultiIndexOps.time_op(1, 'var')
-      13.7±0.5ms       10.6±0.2ms     0.77  io.csv.ReadCSVConcatDatetimeBadDateValue.time_read_csv('nan')
-        20.7±1μs       16.0±0.3μs     0.77  tslibs.offsets.OffestDatetimeArithmetic.time_add(<BusinessDay>)
-      4.53±0.1ms       3.49±0.1ms     0.77  rolling.VariableWindowMethods.time_rolling('DataFrame', '1h', 'float', 'max')
-        424±60μs          326±5μs     0.77  groupby.GroupByMethods.time_dtype_as_group('float', 'first', 'transformation')
-      6.35±0.9μs       4.87±0.4μs     0.77  index_cached_properties.IndexCache.time_shape('TimedeltaIndex')
-      5.02±0.6μs       3.84±0.1μs     0.77  index_cached_properties.IndexCache.time_engine('DatetimeIndex')
-       978±100μs         749±20μs     0.77  groupby.GroupByMethods.time_dtype_as_group('float', 'cumprod', 'transformation')
-       605±100μs         462±10μs     0.76  groupby.GroupByMethods.time_dtype_as_group('float', 'prod', 'transformation')
-        167±20μs          127±9μs     0.76  index_cached_properties.IndexCache.time_is_monotonic_increasing('Float64Index')
-     3.98±0.07ms      3.02±0.04ms     0.76  indexing.NumericSeriesIndexing.time_getitem_array(<class 'pandas.core.indexes.numeric.Int64Index'>, 'unique_monotonic_inc')
-        433±50μs         329±10μs     0.76  groupby.GroupByMethods.time_dtype_as_group('float', 'head', 'direct')
-        478±30μs         362±10μs     0.76  offset.ApplyIndex.time_apply_index(<QuarterBegin: startingMonth=3>)
-      20.0±0.7μs       15.1±0.4μs     0.76  tslibs.offsets.OffestDatetimeArithmetic.time_apply(<QuarterBegin: startingMonth=3>)
-     2.28±0.04ms      1.72±0.09ms     0.76  indexing.NumericSeriesIndexing.time_getitem_list_like(<class 'pandas.core.indexes.numeric.Float64Index'>, 'nonunique_monotonic_inc')
-     2.58±0.03ms      1.94±0.03ms     0.75  rolling.VariableWindowMethods.time_rolling('DataFrame', '50s', 'float', 'mean')
-     3.10±0.06ms       2.34±0.4ms     0.75  rolling.Quantile.time_quantile('DataFrame', 10, 'int', 0, 'linear')
-     2.09±0.07ms      1.57±0.02ms     0.75  io.csv.ReadCSVFloatPrecision.time_read_csv(';', '_', 'high')
-        63.6±5ms       47.7±0.3ms     0.75  strings.Methods.time_rfind
-      39.4±0.7ms         29.5±2ms     0.75  strings.Methods.time_startswith
-     4.54±0.08ms       3.40±0.1ms     0.75  indexing.NonNumericSeriesIndexing.time_getitem_list_like('period', 'unique_monotonic_inc')
-      6.59±0.3ms       4.94±0.5ms     0.75  stat_ops.FrameOps.time_op('var', 'float', 0)
-        434±50μs          325±7μs     0.75  groupby.GroupByMethods.time_dtype_as_group('float', 'last', 'transformation')
-     3.73±0.09ms       2.80±0.1ms     0.75  rolling.VariableWindowMethods.time_rolling('Series', '1h', 'int', 'skew')
-        544±90μs          407±8μs     0.75  reindex.ReindexMethod.time_reindex_method('pad', <function date_range at 0x111c7ab00>)
-      2.96±0.4μs       2.21±0.5μs     0.75  index_cached_properties.IndexCache.time_inferred_type('Float64Index')
-      4.82±0.3ms       3.61±0.2ms     0.75  frame_methods.NSort.time_nlargest_two_columns('last')
-         127±4ms         94.8±7ms     0.75  groupby.GroupByMethods.time_dtype_as_field('float', 'unique', 'direct')
-     1.10±0.03ms         822±30μs     0.75  inference.NumericInferOps.time_divide(<class 'numpy.int16'>)
-      1.95±0.2ms      1.45±0.06ms     0.74  index_cached_properties.IndexCache.time_is_unique('UInt64Index')
-         178±3μs         132±10μs     0.74  groupby.GroupByMethods.time_dtype_as_field('float', 'count', 'transformation')
-      2.83±0.2ms      2.10±0.04ms     0.74  inference.NumericInferOps.time_modulo(<class 'numpy.int16'>)
-      2.87±0.1ms      2.13±0.06ms     0.74  io.csv.ReadCSVFloatPrecision.time_read_csv(',', '.', 'round_trip')
-        306±10μs          227±8μs     0.74  inference.NumericInferOps.time_multiply(<class 'numpy.uint8'>)
-      2.35±0.3ms      1.74±0.03ms     0.74  stat_ops.FrameOps.time_op('kurt', 'int', 0)
-      2.84±0.7ms      2.10±0.01ms     0.74  frame_methods.NSort.time_nsmallest_one_column('last')
-      1.93±0.3ms      1.42±0.05ms     0.74  groupby.RankWithTies.time_rank_ties('float32', 'dense')
-        301±10μs          223±7μs     0.74  groupby.GroupByMethods.time_dtype_as_field('float', 'all', 'direct')
-        841±70μs         621±30μs     0.74  groupby.GroupByMethods.time_dtype_as_group('float', 'cumsum', 'direct')
-      2.12±0.2ms      1.57±0.05ms     0.74  io.csv.ReadCSVFloatPrecision.time_read_csv(',', '_', None)
-      3.46±0.2ms      2.55±0.05ms     0.74  inference.NumericInferOps.time_modulo(<class 'numpy.int8'>)
-      2.55±0.1ms       1.88±0.1ms     0.74  indexing.NumericSeriesIndexing.time_getitem_list_like(<class 'pandas.core.indexes.numeric.UInt64Index'>, 'nonunique_monotonic_inc')
-     1.94±0.05ms       1.43±0.1ms     0.74  groupby.GroupByMethods.time_dtype_as_field('int', 'pct_change', 'transformation')
-      4.56±0.1ms      3.36±0.08ms     0.74  io.csv.ReadCSVFloatPrecision.time_read_csv_python_engine(',', '_', 'round_trip')
-        586±80μs          432±6μs     0.74  groupby.GroupByMethods.time_dtype_as_field('int', 'mean', 'direct')
-     1.82±0.06ms      1.34±0.03ms     0.74  io.csv.ReadCSVFloatPrecision.time_read_csv(';', '.', 'high')
-        664±20μs          489±8μs     0.74  join_merge.Concat.time_concat_mixed_ndims(1)
-        15.2±2μs         11.2±1μs     0.74  index_cached_properties.IndexCache.time_engine('UInt64Index')
-        322±10μs          237±8μs     0.74  groupby.GroupByMethods.time_dtype_as_field('datetime', 'shift', 'direct')
-        445±20μs          327±9μs     0.74  groupby.GroupByMethods.time_dtype_as_group('datetime', 'min', 'transformation')
-     1.02±0.07ms         745±30μs     0.73  frame_methods.SelectDtypes.time_select_dtypes(100)
-      1.91±0.3ms      1.40±0.01ms     0.73  groupby.RankWithTies.time_rank_ties('int64', 'dense')
-         377±8μs         277±10μs     0.73  groupby.GroupByMethods.time_dtype_as_field('datetime', 'last', 'transformation')
-      16.0±0.5ms       11.8±0.2ms     0.73  stat_ops.FrameOps.time_op('sem', 'float', 1)
-        449±10μs          329±4μs     0.73  groupby.GroupByMethods.time_dtype_as_group('int', 'min', 'direct')
-      2.68±0.6μs       1.96±0.3μs     0.73  index_cached_properties.IndexCache.time_inferred_type('UInt64Index')
-      1.37±0.2ms         999±10μs     0.73  stat_ops.SeriesOps.time_op('median', 'float')
-        487±20μs         356±10μs     0.73  groupby.GroupByMethods.time_dtype_as_field('int', 'tail', 'transformation')
-     8.23±0.07ms       6.00±0.7ms     0.73  rolling.Pairwise.time_pairwise(None, 'corr', False)
-     4.72±0.05ms      3.43±0.08ms     0.73  timeseries.ToDatetimeCache.time_dup_seconds_and_unit(True)
-      1.96±0.1ms      1.43±0.02ms     0.73  io.csv.ReadCSVFloatPrecision.time_read_csv(',', '.', 'high')
-        21.8±1ms       15.9±0.2ms     0.73  reshape.Crosstab.time_crosstab_normalize
-        611±60μs          444±6μs     0.73  groupby.GroupByMethods.time_dtype_as_group('float', 'quantile', 'transformation')
-      2.63±0.2μs       1.91±0.2μs     0.73  index_cached_properties.IndexCache.time_is_all_dates('UInt64Index')
-      2.92±0.7μs       2.11±0.3μs     0.72  index_cached_properties.IndexCache.time_values('Float64Index')
-         470±6μs          340±5μs     0.72  groupby.GroupByMethods.time_dtype_as_group('float', 'bfill', 'direct')
-      13.4±0.4ms       9.67±0.1ms     0.72  stat_ops.Rank.time_average_old('Series', True)
-      6.64±0.4ms       4.79±0.1ms     0.72  timeseries.TimeDatetimeConverter.time_convert
-         638±3μs         459±20μs     0.72  groupby.GroupByMethods.time_dtype_as_field('int', 'quantile', 'direct')
-        149±30μs          107±1μs     0.72  index_cached_properties.IndexCache.time_is_monotonic_decreasing('PeriodIndex')
-      2.10±0.1ms      1.51±0.02ms     0.72  io.csv.ReadCSVFloatPrecision.time_read_csv(';', '_', 'round_trip')
-      4.88±0.3ms       3.51±0.1ms     0.72  frame_methods.NSort.time_nlargest_two_columns('first')
-      2.67±0.3ms      1.92±0.05ms     0.72  stat_ops.SeriesMultiIndexOps.time_op(0, 'sum')
-      1.45±0.2ms      1.04±0.02ms     0.72  groupby.Categories.time_groupby_extra_cat_sort
-      15.2±0.6ms       10.9±0.6ms     0.71  groupby.Nth.time_frame_nth('object')
-     2.09±0.09ms      1.48±0.04ms     0.71  io.csv.ReadCSVFloatPrecision.time_read_csv(',', '.', None)
-      3.48±0.2ms      2.48±0.03ms     0.71  stat_ops.SeriesMultiIndexOps.time_op(0, 'std')
-      1.99±0.1ms      1.41±0.04ms     0.71  io.csv.ReadCSVFloatPrecision.time_read_csv(';', '.', None)
-         584±8μs         414±20μs     0.71  stat_ops.FrameOps.time_op('prod', 'int', 0)
-     2.05±0.03ms      1.45±0.01ms     0.71  indexing.NumericSeriesIndexing.time_loc_list_like(<class 'pandas.core.indexes.numeric.Float64Index'>, 'nonunique_monotonic_inc')
-        449±70μs          317±9μs     0.71  groupby.GroupByMethods.time_dtype_as_group('datetime', 'max', 'transformation')
-        35.4±2ms       25.0±0.7ms     0.70  join_merge.Merge.time_merge_2intkey(True)
-      5.06±0.1ms       3.56±0.2ms     0.70  rolling.VariableWindowMethods.time_rolling('Series', '50s', 'int', 'min')
-      1.25±0.2ms         879±40μs     0.70  stat_ops.FrameOps.time_op('var', 'int', 0)
-      3.29±0.2ms      2.30±0.07ms     0.70  inference.NumericInferOps.time_modulo(<class 'numpy.int32'>)
-        304±30μs          212±8μs     0.70  stat_ops.SeriesOps.time_op('var', 'int')
-        492±20μs         343±10μs     0.70  groupby.GroupByMethods.time_dtype_as_group('float', 'max', 'transformation')
-      2.53±0.6μs       1.76±0.2μs     0.70  index_cached_properties.IndexCache.time_is_all_dates('MultiIndex')
-      2.02±0.1ms      1.41±0.02ms     0.70  groupby.RankWithTies.time_rank_ties('int64', 'max')
-        631±20μs         439±20μs     0.70  groupby.GroupByMethods.time_dtype_as_field('int', 'sum', 'transformation')
-     2.58±0.07ms      1.79±0.02ms     0.69  stat_ops.SeriesOps.time_op('mad', 'int')
-      4.63±0.2ms       3.20±0.3ms     0.69  stat_ops.SeriesMultiIndexOps.time_op(0, 'median')
-      12.3±0.2ms       8.47±0.2ms     0.69  stat_ops.Rank.time_average_old('DataFrame', True)
-         659±6μs         455±10μs     0.69  groupby.GroupByMethods.time_dtype_as_field('int', 'std', 'transformation')
-     1.18±0.02ms         811±10μs     0.69  groupby.GroupByMethods.time_dtype_as_group('float', 'rank', 'transformation')
-        640±40μs         439±20μs     0.69  groupby.GroupByMethods.time_dtype_as_field('int', 'mean', 'transformation')
-         130±2μs         89.0±1μs     0.69  indexing.NumericSeriesIndexing.time_getitem_scalar(<class 'pandas.core.indexes.numeric.Float64Index'>, 'nonunique_monotonic_inc')
-     2.09±0.06ms      1.42±0.04ms     0.68  groupby.GroupByMethods.time_dtype_as_group('float', 'pct_change', 'direct')
-         509±7μs          347±6μs     0.68  groupby.GroupByMethods.time_dtype_as_group('float', 'nunique', 'direct')
-        670±40μs         455±10μs     0.68  groupby.GroupByMethods.time_dtype_as_group('float', 'median', 'transformation')
-        472±30μs          320±7μs     0.68  groupby.GroupByMethods.time_dtype_as_group('datetime', 'first', 'transformation')
-        603±30μs          407±7μs     0.68  stat_ops.SeriesOps.time_op('var', 'float')
-        491±20μs          330±6μs     0.67  groupby.GroupByMethods.time_dtype_as_group('float', 'min', 'transformation')
-         691±9μs         464±10μs     0.67  groupby.GroupByMethods.time_dtype_as_group('float', 'mean', 'direct')
-        51.7±9μs       34.7±0.3μs     0.67  index_cached_properties.IndexCache.time_engine('RangeIndex')
-        491±20μs          329±3μs     0.67  groupby.GroupByMethods.time_dtype_as_group('datetime', 'min', 'direct')
-        503±10μs          337±7μs     0.67  groupby.GroupByMethods.time_dtype_as_group('float', 'nunique', 'transformation')
-         497±7μs         332±10μs     0.67  groupby.GroupByMethods.time_dtype_as_group('float', 'min', 'direct')
-        184±10μs          123±6μs     0.67  index_cached_properties.IndexCache.time_is_monotonic('Float64Index')
-        158±30μs          105±1μs     0.67  index_cached_properties.IndexCache.time_is_monotonic_increasing('PeriodIndex')
-     2.05±0.05ms      1.36±0.02ms     0.66  groupby.GroupByMethods.time_dtype_as_group('float', 'pct_change', 'transformation')
-        483±20μs          319±4μs     0.66  stat_ops.FrameOps.time_op('prod', 'int', 1)
-        366±20μs          242±5μs     0.66  groupby.GroupByMethods.time_dtype_as_group('datetime', 'ffill', 'direct')
-        706±20μs          463±6μs     0.66  groupby.GroupByMethods.time_dtype_as_group('float', 'quantile', 'direct')
-      3.13±0.2ms       2.04±0.1ms     0.65  stat_ops.FrameOps.time_op('prod', 'float', 1)
-        494±30μs          322±5μs     0.65  groupby.GroupByMethods.time_dtype_as_group('datetime', 'head', 'direct')
-        437±20μs         283±20μs     0.65  stat_ops.SeriesOps.time_op('kurt', 'int')
-     3.57±0.07ms      2.28±0.03ms     0.64  groupby.TransformBools.time_transform_mean
-     1.42±0.03ms         901±20μs     0.64  stat_ops.SeriesOps.time_op('sem', 'float')
-        518±20μs          329±5μs     0.64  groupby.GroupByMethods.time_dtype_as_group('float', 'max', 'direct')
-      3.20±0.2ms      1.98±0.03ms     0.62  frame_methods.NSort.time_nsmallest_one_column('all')
-        736±20μs          455±6μs     0.62  groupby.GroupByMethods.time_dtype_as_group('float', 'median', 'direct')
-      4.68±0.5μs       2.84±0.5μs     0.61  index_cached_properties.IndexCache.time_shape('Float64Index')
-        19.6±1μs         11.0±4μs     0.56  index_cached_properties.IndexCache.time_engine('Float64Index')
-      4.98±0.8ms      2.73±0.09ms     0.55  index_object.Indexing.time_get_loc_non_unique('Float')

@jreback jreback merged commit d5f0f44 into pandas-dev:master Dec 24, 2019
@jbrockmendel jbrockmendel deleted the ref-take_helper branch December 24, 2019 16:46
AlexKirko pushed a commit to AlexKirko/pandas that referenced this pull request Dec 29, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants